﻿Imports Entidad
Imports Negocio
Imports Utilitario
Public Class frmAgregaTipos

    Dim servicio1 As New ClienteNegocio
    Dim servicio2 As New PedidoNegocio

    Dim util As New Utiles
    Dim codClientePropietario As String = ""
    Dim codCliente As String = ""

    Sub New(codClientePropietario As String, codCliente As String)

        ' Llamada necesaria para el diseñador.
        InitializeComponent()

        ' Agregue cualquier inicialización después de la llamada a InitializeComponent().
        Me.codClientePropietario = codClientePropietario
        Me.codCliente = codCliente
    End Sub

    Sub cargarDepartamentos(combo As ComboBox)
        Dim ds As DataSet = servicio2.listarDepartamentos()
        With combo
            .DataSource = ds.Tables(0)
            .ValueMember = "DEP_Codigo"
            .DisplayMember = "DEP_Descripcion"
        End With
    End Sub

    Sub cargarProvincias(codDepartamento As String, combo As ComboBox)
        Dim ds As DataSet = servicio2.listarProvinciaXDepartamento(codDepartamento)
        With combo
            .DataSource = ds.Tables(0)
            .ValueMember = "PRO_Codigo"
            .DisplayMember = "PRO_Descripcion"
        End With
    End Sub

    Sub cargarDistritos(codProvincia As String, combo As ComboBox)
        Dim ds As DataSet = servicio2.listarDistritosXProvincia(codProvincia)
        With combo
            .DataSource = ds.Tables(0)
            .ValueMember = "DIS_Codigo"
            .DisplayMember = "DIS_Descripcion"
        End With
    End Sub

    Sub cargarCargos()
        Dim ds As DataSet = servicio1.obtenerCargos()
        With cboCargo
            .DataSource = ds.Tables(0)
            .ValueMember = "CAR_Codigo"
            .DisplayMember = "CAR_Descripcion"
        End With
    End Sub

    Sub cargarTipos()
        Dim ds As DataSet = servicio1.obtenerTiposClientePersonas()
        With cboTipo
            .DataSource = ds.Tables(0)
            .ValueMember = "TIP_Codigo"
            .DisplayMember = "TIP_Descripcion"
        End With
    End Sub

    Sub cargaInicial()
        cargarDepartamentos(cboDepartamento)
        cargarProvincias(cboDepartamento.SelectedValue.ToString, cboProvincia)
        cargarDistritos(cboProvincia.SelectedValue.ToString, cboDistrito)
        cargarCargos()
        cargarTipos()
        If codClientePropietario <> "" Then
            mostrarInformacionPersona(codClientePropietario)
            mostrarBoton(False, True)
        End If
    End Sub

    Sub mostrarInformacionPersona(codigo As String)
        Dim cliPropietario As ClientePropietario = servicio1.obtenerClientePropietarioXID(codigo)
        txtNomPropietario.Text = cliPropietario.CLP_Descripcion
        txtDomicilio.Text = cliPropietario.CLP_Domicilio
        txtDniPropietario.Text = cliPropietario.CLP_Dni
        txtFaxPropietario.Text = cliPropietario.CLP_Fax
        txtTelPropietario.Text = cliPropietario.CLP_Telefono
        cboCargo.SelectedValue = cliPropietario.CAR_Codigo
        cboTipo.SelectedValue = cliPropietario.TIP_Codigo
        If cliPropietario.DIS_Codigo <> "0" Then
            cboDepartamento.SelectedValue = cliPropietario.DIS_Codigo.Substring(0, 2)
            cboProvincia.SelectedValue = cliPropietario.DIS_Codigo.Substring(0, 4)
            cboDistrito.SelectedValue = cliPropietario.DIS_Codigo
        End If
        mostrarActivo(cliPropietario.CLP_Activo)
    End Sub

    Sub mostrarBoton(x As Boolean, y As Boolean)
        btnGuardar.Visible = x
        btnActualizar.Visible = y
    End Sub

    Sub mostrarActivo(flag As String)
        If flag = "1" Then
            chkActivo.Checked = True
        Else
            chkActivo.Checked = False
        End If
    End Sub

    Sub guardarInformacion()
        If MsgBox("¿Esta seguro que desea realizar este registro?", MsgBoxStyle.Question + MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2, "Mensajes al Usuario") = MsgBoxResult.Yes Then
            Dim entCliPropietario As New ClientePropietario(codClientePropietario, txtDniPropietario.Text.Trim, txtNomPropietario.Text.Trim, txtDomicilio.Text.Trim,
                                                                    txtFaxPropietario.Text.Trim, txtTelPropietario.Text.Trim, cboDistrito.SelectedValue.ToString,
                                                                    cboCargo.SelectedValue.ToString, codCliente, cboTipo.SelectedValue.ToString, IIf(chkActivo.Checked = True, "1", "0"))

            If servicio1.registrarClientePropietario(entCliPropietario) = True Then
                util.mensaje("Los datos se registraron correctamente.")
                DialogResult = Windows.Forms.DialogResult.OK
            Else
                util.mensaje("Ocurrió un error al guardar. Intentelo nuevamente.")
            End If
        End If
    End Sub

    Sub actualizarInformacion()
        If MsgBox("¿Esta seguro que desea realizar esta actualización?", MsgBoxStyle.Question + MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2, "Mensajes al Usuario") = MsgBoxResult.Yes Then
            Dim entCliPropietario As New ClientePropietario(codClientePropietario, txtDniPropietario.Text.Trim, txtNomPropietario.Text.Trim, txtDomicilio.Text.Trim,
                                                                    txtFaxPropietario.Text.Trim, txtTelPropietario.Text.Trim, cboDistrito.SelectedValue.ToString,
                                                                    cboCargo.SelectedValue.ToString, codCliente, cboTipo.SelectedValue.ToString, IIf(chkActivo.Checked = True, "1", "0"))

            If servicio1.actualizarClientePropietario(entCliPropietario) = True Then
                util.mensaje("Los datos se actualizaron correctamente.")
                DialogResult = Windows.Forms.DialogResult.OK
            Else
                util.mensaje("Ocurrió un error al actualizar. Intentelo nuevamente.")
            End If
        End If
    End Sub

    Sub limpiar()
        txtNomPropietario.Text = ""
        txtDomicilio.Text = ""
        txtDniPropietario.Text = ""
        txtFaxPropietario.Text = ""
        txtTelPropietario.Text = ""
        chkActivo.Checked = False
        cboTipo.SelectedIndex = 0
        cboCargo.SelectedIndex = 0
        cboDepartamento.SelectedIndex = 0
        mostrarBoton(True, False)
    End Sub

    Private Sub frmAgregaTipos_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        cargaInicial()
    End Sub

    Private Sub cboDepartamento_SelectedValueChanged(sender As Object, e As System.EventArgs) Handles cboDepartamento.SelectedValueChanged
        cargarProvincias(cboDepartamento.SelectedValue.ToString, cboProvincia)
    End Sub

    Private Sub cboProvincia_SelectedValueChanged(sender As Object, e As System.EventArgs) Handles cboProvincia.SelectedValueChanged
        cargarDistritos(cboProvincia.SelectedValue.ToString, cboDistrito)
    End Sub

    Private Sub btnLimpiar_Click(sender As System.Object, e As System.EventArgs) Handles btnLimpiar.Click
        limpiar()
        txtNomPropietario.Focus()
    End Sub

    Private Sub btnGuardar_Click(sender As System.Object, e As System.EventArgs) Handles btnGuardar.Click
        guardarInformacion()
    End Sub

    Private Sub btnActualizar_Click(sender As Object, e As System.EventArgs) Handles btnActualizar.Click
        actualizarInformacion()
    End Sub

End Class